﻿#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMap>
#include <QThread>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class BatchReplacer;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    // 选择目录按钮点击事件
    void on_selectDirBtn_clicked();

    // 开始替换按钮点击事件
    void on_startReplaceBtn_clicked();

    // 更新进度条
    void updateProgress(int current, int total);

    // 显示替换结果
    void showResult(int filesProcessed, int filesModified);

    // 添加日志信息
    void addLogMessage(const QString &message);

signals:
    // 触发替换的信号（用于跨线程通信）
    void startReplaceSignal();

private:
    Ui::MainWindow *ui;               // UI对象
    BatchReplacer *m_replacer;        // 批量替换处理器
    QThread *m_workerThread;          // 工作线程（避免UI卡顿）
};

#endif // MAINWINDOW_H
